#ifndef _COMBATDATADEF_H_
#define _COMBATDATADEF_H_
#include "MgrBase.h"
#include "SimpleRefection.h"
class CombatDataDef:public ReflectionBase
{
	DECL_REFLECTION(CombatDataDef,"../../config/CombatDataDef.xml");
public:
	int32			m_iID;
	std::string		m_sDisplayName;
	std::string		m_sName;
	bool			m_bCustom;
	int32			m_iHeroDef;
	int32			m_iHeroLvl;
	int32			m_iHeroInnate0;
	int32			m_iHeroInnate1;
	int32			m_iHeroInnate2;
	int32			m_iHeroInnate3;
	int32			m_iHeroRage0;
	int32			m_iHeroRage1;
	int32			m_iCard0;
	int32			m_iCard1;
	int32			m_iCard2;
	int32			m_iCard3;
	int32			m_iCard4;
	int32			m_iCard5;
	int32			m_iCard6;
	int32			m_iCard7;
	int32			m_iCard8;
	int32			m_iCard9;
	float			m_fRageIncAddPercent;
	float			m_fRageIncAddValue;

	const std::vector<int32>& Cards() const{ return m_vCards;}
	const std::vector<int32>& InnateSkills() const{ return m_vInnateSkills;}

	rewrite virtual void OnArchieveReaded();
private:
	std::vector<int32> m_vCards;
	std::vector<int32> m_vInnateSkills;
};

typedef DefMangerTpl<CombatDataDef> __CombatDataDefManager; //eDefaultDef_Num
class CombatDataDefManager:public __CombatDataDefManager
{
public:
	static CombatDataDefManager& Instance(){static CombatDataDefManager _instance;return _instance;	}
	virtual void OnArchieveReaded();
private:
	CombatDataDefManager(){}
};

#endif
/////////////////////////////////////////
